import axios from "axios";
import define from './define.js';

  //  创建 axios 实例
  const instance = axios.create({
    baseURL: import.meta.env.VITE_BASE_URL,
    timeout: define.timeout
  });


//  请求拦截 （ 判断token、设置请求头 ）
axios.interceptors.request.use(function (config) {
  //1、 do something before request is sent
  config.headers['current-origin'] = 'pc'

  //2、 config.headers['Authorization'] = getToken()  //  设置 token

  //3、如果是 get 请求，把参数拼接到 url 上，内部会进行处理
  if (config.method == 'get') {
    config.params = config.data
  }

  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

//  响应拦截 （ 对响应回来的数据进行处理 ）
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  //  1、判断是否是文件流   filedown blob 
  if (response.config?.responseType === 'blob') {
    return response;
  }

  //  2、对数据进行去层 找到自己想要的数据
  return response.data;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default instance;